package org.epanetgrid.otimizacao;

/**
 * Classes que contem informa��es sobre eventos lan�ados pelo otimizador
 * devem implementar esta interface
 * @author vinicius
 *
 */
public interface OtimizadorEvent {
    public static final int INICIO = 0;
    public static final int PASSO  = 1;
    public static final int FINAL  = 2;
    public static final int TEMPO_LIMITE = 3;
    public static final int ERRO = 4;
    public static final int PAUSE = 5;
    public static final int NAO_CONVERGENCIA = 6;

    /**
     * Objeto associado ao evento
     * @return
     */
    public Object getData();

    /**
     * Quem lan�ou o evento
     * @return
     */
    public OtimizadorObservable getSource();

    /**
     * Tipo do evento, INICIO, PASSO...
     * @return
     */
    public int getType();

}
